package start.spring.basic.log;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 
 * ****************************************************************************
 * controller公共日志记录注解
 *
 * @author(作者)：xuyongyun	
 * @date(创建日期)：2020年7月1日
 ******************************************************************************
 */
@Target({ ElementType.METHOD, ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface ServiceLog {
	/**
	 * 子系统类型，记录当前子系统唯一标志
	 *	
	 * @return
	 * @since           1.0
	 */
	String systemType();
	
	/**
	 * 业务类型，记录当前请求的所属业务唯一标志
	 *	
	 * @return
	 * @since           1.0
	 */
	String businessType();
	
	/**
	 * 用户id，用于非登录请求（如定时任务、第三方系统后台）调用时设置请求来源，登录请求
	 *	
	 * @return
	 * @since           1.0
	 */
	String userId();
	
	/**
	 * 是否记录操作结果，查询类请求返回的查询结果，由于数据量太大通常不需要记录，非查询请求通常需要记录，根据实际要求设置
	 *	
	 * @return
	 * @since           1.0
	 */
	boolean recordResult();
}
